package com.xiaolin.regex;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @ClassName PatternTest
 * @Description 描述
 * @Detail detail
 * @Author MyPC
 * @Date 2020/11/30
 * @Version 1.0
 */
public class PatternTest {
    public static void main(String[] args) {
        // 1、使用静态方法进行匹配
        boolean isMatch = Pattern.matches("..", "11");
        System.out.println(isMatch);
        // 2、返回一个Pattern对象进行匹配
        String regex1="\\d+";  // \d表示匹配一个数字，+代表匹配一次或多次
        String regex2="\\d?";  // \d表示匹配一个数字，?代表匹配0次或一次
        String regex3="\\d*";  // \d表示匹配一个数字，*代表匹配0次或多次
        String regex4="[a-z]*";  //[a-z] 代表匹配一个英文字母
        String regex5="[^a-z]*";  // [^a-z] 代表匹配一个不是英文字母的字符
        String regex6="\\D";   // /D 代表匹配一个不是数字的字符
        String regex7="[abc]";  // 代表匹配 a或b或c 这个字符
        String regex8="a|b";  // 代表匹配 a或b 这个字符，等价于[ab]
        String regex9="i{2}";  // 代表正好匹配2个i
        String regex10="i{2,}";  // 代表至少匹配2个i
        String regex11="i{0,3}";  // 代表至少匹配0个i，至多匹配3个i
        String regex12="[0-9]";  // 代表匹配一个数字，等价于\d
        String regex13="[0-9]*abc$";  // 代表前边匹配0个或多个数字，且以abc结尾的字符串
        String regex14="^abc[0-9]*";  // 代表abc开头，之后匹配0个或多个数字的字符串
        String regex15="\\w";  // 匹配一个字母/数字/下划线字符，等价于[a-zA-Z0-9_]
        String regex16="\\W";  // 匹配一个不是字母/数字/下划线的字符，等价于[^a-zA-Z0-9_]
        // \t是制表符、\r是回车符、/n是换行符
        Pattern pattern = Pattern.compile(regex16);
        // matcher对象
        Matcher matcher = pattern.matcher("$");
        boolean matches = matcher.matches();
        System.out.println(matches);

    }
}
